package yzy.ecps.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import yzy.ecps.dao.ShipAddrDao;
import yzy.ecps.model.BtcShipAddr;
import yzy.ecps.service.ShipAddrService;

@Service
public class ShipAddrServiceImpl implements ShipAddrService {
	@Autowired
	private ShipAddrDao addrDao;
	
	public void addAddrForUser(BtcShipAddr addr, Long userId) {
		addr.setPtlUserId(userId);
		if(addr.getDefaultAddr() == 1){
			addrDao.cancelDefaultAddr(userId);
		}
		addrDao.addShipAddr(addr);
	}

	public List<BtcShipAddr> findAllAddrForUser(Long userId) {
		return addrDao.findByUserId(userId);
	}

	public void updateAddrForUser(Long userId, BtcShipAddr addr) {
		addr.setPtlUserId(userId);
		if(addr.getDefaultAddr() == 1)
			addrDao.cancelDefaultAddr(userId);
		addrDao.updateShipAddr(addr);
	}

	public void changeDefaultAddr(Long addrId, Long userId) {
		//创建一个收货地址
		BtcShipAddr addr = new BtcShipAddr();
		//设置其传入的ID
		addr.setShipAddrId(addrId);
		//设置其为默认地址
		addr.setDefaultAddr(1);
		//取消之前的默认地址
		addrDao.cancelDefaultAddr(userId);
		//将设置好的指定的地址进行更改
		addrDao.updateShipAddr(addr);
	}

	public BtcShipAddr findAddrById(Long addrId) {
		return addrDao.findAddrById(addrId);
	}

	public void deleteAddr(Long addrId) {
		addrDao.deleteShipAddr(addrId);
	}

}
